import type { ActionKey, ModuleKey } from '@/api/apiUrl';
// 分页查询参数
export interface PageQuery {
  page?: number;
  pageSize?: number;
  data?: string;
}



// 统一响应格式
export interface R<T = any> {
  code: number;
  msg: string;
  data: T;
}

// 删除 DTO（与后端对齐）
export interface DeletionRow {
  deletion_model: string;
  pk_names: string[];
  pk_values: string[];
  deletion_reason: string;
  data?: Record<string, any>;
}

export interface QueryParams {
  page?: number;
  pageSize?: number;
  data?: Record<string, any>;
  sort?: string[];
}

// 工厂函数：带默认值
export function createQueryParams(overrides: Partial<QueryParams> = {}): QueryParams {
  return {
    page: 1,              // 默认第 1 页
    pageSize: 100,        // 默认 100 条
    data: {},             // 默认空过滤条件
    sort: undefined,      // 默认无排序
    ...overrides,         // 外部可以覆盖
  };
}


// 表单保存选项和结果接口
export interface FormSaveOptions<T = any> {
  module: ModuleKey;
  formData: T;
  formRef?: any;          // el-form 的 ref，可选
  isUpdate?: boolean;     // 强制指定走 update；不传则按 id 判断
}

export interface SaveResult<T = any> {
  success: boolean;
  data?: T;               // 后端返回的单条记录
  msg?: string;
}